<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			// 人类 (父类)
			class Person {
				// 默认在公有上，实例初始化(增加私有属性)
				constructor(name, age) {
					console.log("测试~~~",this);
					
					// 增加私有
					// this->自动帮我们创建那个对象（实例）
					this.name = name;
					this.age = age;
					
				};

				// 增加公有
				say() {
					console.log(`我叫${this.name},我今年${this.age}岁~~~`);
				}

			}


			/*
				特点：将父类的私有作为子类的私有，将父类的公有子类公有的公有
				
				不推介  
				class 子类 extends 父类{
					//私有
					属性 = 值;
					...
					
					//公有
					函数名(){
						
					};
					...
				}
			*/

			// 子类（Student） 
			// 继承父类，将父类的constructor调用了，这个时候constructor函数中this就是当前这个子类的实例（学员）
			class Student extends Person {
				// 私有
				xuehao = "123456";
				
				// 公有
				xiezuoye(){
					console.log("写作业")
				}
			}
			
			let stu1 = new Student();
			console.log(stu1);
		</script>
	</body>
</html>
